package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.SupplierBean;
import com.project.bean.UserBean;

import java.util.List;

/**
 * 用户业务接口
 */
public interface IUserService {
    /**
     *  登录校验，成功返回登录对象 ，同时添加日志信息，并且记录封装权限
     * @param userName 用户名密码
     * @param pwd
     * @return
     */
   UserBean login(String userName, String pwd);

    /**
     * 查询该用户是否存在，如果存在，返回false
     * 如果不存在，添加用户，同时添加该用户拥有的角色
     * 添加用户
     * @param
     * @return
     */
    public boolean add(UserBean user, Integer[] roleIdArray);

    /**
     * 动态分页查询
     * @param pageNO  页码
      * @param userName 用户名
     * @return
     */
    IPage<UserBean> findByItem(Integer pageNO, String userName);

    /**
     * 通过id修改密码
     * @param id 用户编号
     * @param pwd 密码
     */
    void updatePwd(Integer id,String pwd);

    /**
     * 通过id删除用户
     * 先判断是否是登陆用户，如果是登陆用户直接返回false
     * 如果并非当前登陆用户则先删除该用户对应的角色(中间表记录)，再进行用户表的信息删除
     * @param id id编号
     * @param loginUser
     * @return
     */
    boolean del(Integer id,UserBean loginUser);

    /**
     * 通过id查询用户，同时连表查询该用户拥有的角色集合和权限集合
     * @param id
     * @return
     */
    UserBean findById(Integer id);

    /**
     * 修改权限
     * @param id
     * @param rolesId
     */
    void updateRoles(Integer id,Integer[] rolesId);

}
